import request from '@/config/axios'

// 合同信息 VO
export interface ContractVO {
  id: number // 主键
  contractName: string // 合同名称
  contractNo: string // 合同编号
  contractStatus: string // 合同状态
  signingDate: Date // 签订时间
  partyA: string // 甲方名称
  partyB: string // 乙方名称
  contractType: string // 合同类型
  contractTaxRate: number // 合同税率
  contractAmountInclTax: number // 合同总金额（含税）
  contractAmountExclTax: number // 合同总金额（不含税）
  contractDepartmentId: number // 合同责任部门ID
  contractDepartment: string // 合同责任部门
  contractResponsiblePersonId: number // 合同责任人ID
  contractResponsiblePerson: string // 合同责任人
  responsiblePersonPhone: string // 责任人联系电话
  partyAManagerId: number // 甲方签署人员ID
  partyAManager: string // 甲方签署人员
  partyBDepartment: string // 乙方公司名称
  partyBResponsiblePerson: string // 乙方责任人
  partyBManagerPhone: string // 乙方联系人电话
  partyBManager: string // 乙方签署人员
  partyBManagerWx: string // 乙方联系人微信
  partyBManagerEmail: string // 乙方联系人邮箱
  urgencyLevel: string // 紧急程度
  confidentialityLevel: string // 保密程度
  effectiveDate: Date // 生效日期
  expirationDate: Date // 终止日期
  renewalDate: Date // 预计续期日期
  contractSummary: string // 摘要内容
}
const cache = new Map()

// 合同信息 API
export const ContractApi = {
  // 查询合同信息分页
  getContractPage: async (params: any) => {
    return await request.get({ url: `/erp/contract/page`, params })
  },
  // 查询合同信息全部
  getContractqueryAll: async () => {
    if (cache.has('erp_contract_queryAll')) {
      return cache.get('erp_contract_queryAll')
    }
    const res = await request.get({ url: `/erp/contract/queryAll` })
    cache.set('erp_contract_queryAll', res)
    return res
    // return await request.get({ url: `/erp/contract/queryAll`, params })
  },

  // 查询合同信息详情
  getContract: async (id: number) => {
    return await request.get({ url: `/erp/contract/get?id=` + id })
  },

  // 新增合同信息
  createContract: async (data: ContractVO) => {
    cache.clear()
    return await request.post({ url: `/erp/contract/create`, data })
  },

  // 修改合同信息
  updateContract: async (data: ContractVO) => {
    cache.clear()
    return await request.put({ url: `/erp/contract/update`, data })
  },

  // 删除合同信息
  deleteContract: async (id: number) => {
    cache.clear()
    return await request.delete({ url: `/erp/contract/delete?id=` + id })
  },

  // 导出合同信息 Excel
  exportContract: async (params) => {
    return await request.download({ url: `/erp/contract/export-excel`, params })
  }
}
